Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра ЕОМ
Звіт
з лабораторної роботи № 2
з дисципліни: “Організація та функціонування комп’ютерів”
на тему: “ Набір інструкцій навчального комп’ютера.
Загальний порядок виконання інструкцій. ”
Тема: Набір інструкцій навчального комп’ютера. Загальний порядок виконання інструкцій.
Мета: 1. Засвоїти порядок виконання програм у комп’ютері. Ознайомитися з форматом та набором інструкцій симулятора навчальної ЕОМ;
2. Засвоїти призначення регістру ознак процесора;
3. Ознайомитися з режимами роботи навчального комп’ютера. Засвоїти базовий порядок виконання інструкції навчального комп’ютера та навчитися досліджувати хід виконання окремих інструкцій.
Теоретичні відомості
Для виконання конкретної задачі у пам’ять записується відповідна програма, яка складається із множини інструкцій. Інструкції по черзі пересилаються з пам’яті у процесор, який їх виконує. У відповідності до розглянутих принципів процесор працює наступним чином:
за вказаною адресою зчитує першу інструкцію;
виконує дії, вказані у цій інструкції;
збільшує вказану адресу на 1 і переходить до виконання нової, наступної інструкції і т.п.
Усі інструкції у навчальному комп’ютері можна розділяти за такими напрямками:
За форматом коду інструкції;
За призначенням.
Перший поділ ми розглянули у роботі № 1. Нагадаємо: інструкції є адресні та безадресні. Безадресні інструкції або взагалі не використовують будь-які операнди (це числа, що використовуються у якості даних), як, наприклад, інструкції HALT або інструкції зсувів. Або у таких інструкціях однозначно відомо, звідки брати операнди для операції: наприклад, інструкція NOT однозначно працює з акумулятором (інвертує його); так само роблять усі інструкції зсувів (LSL, ASR, ROR та інші); а от інструкції INPUT та OUTPUT працюють не лише з акумулятором, але й з портами вводу (INPUT) та виводу (OUTPUT).
Відповідно адресні інструкції для виконання своєї операції потребують операнда, в якості якого може бути вміст будь-якої з 4096 комірок пам’яті. Отже, окрім коду операції, який займає найстарші 4 розряду машинного коду інструкції (від 15-го до 12-го ), решту розрядів займає 12-розрядна адреса комірки пам’яті, значення вмісту якої стане операндом і буде оброблятись у даній інструкції.
Усі інструкції навчального комп’ютера за призначенням можна розділити на наступні групи:
1). інструкції звертання до пам’яті (LOAD та STORE);
2). арифметичні інструкції (ADD та SUB);
3). логічні інструкції (AND, OR, XOR та NOT);
4). інструкції вводу/виводу (INPUT та OUTPUT);
5). інструкції керування виконанням програми:
а) інструкція зупинки (HALT);
б) інструкції умовних переходів (JNZ, JZ, JP, JM, JNC та JC);
в) інструкція безумовного переходу (JMP);
6). інструкції зсувів (вліво (Left) та вправо (Right)):
а). інструкції логічного зсуву (LSL та LSR);
б). інструкції арифметичного зсуву (ASL та ASR);
в). інструкції циклічного зсуву (ROL та ROR);
г). інструкції циклічного зсуву через перенос C (RCL та RCR).
Отже, перша група інструкцій – це:
1.1. Інструкції звертання до пам’яті:
1). LOAD ADR - завантажити (від англ. Load - завантажувати). Дивимся у рис. 1.1.:
машинний код – 0000 aaaa aaaa aaaa; виконання – (ADDR) ( Акумулятор.
Ця інструкція здійснює читання 16-розрядного числа з комірки пам’яті, на яку вказує поле адреси ADR, і розміщує його у акумуляторі. Перші найстарші 4 розряди (старша тетрада) містять код операції “завантаження” з пам’яті – 0000, а наступні 12 розрядів – адресу комірки, з якої відбуватиметься читання. Наприклад, для того, щоб прочитати число з 15-ї або 2041-ої комірки пам’яті і записати його до акумулятора, необхідно використати :
...